﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GestionHT.ar.com.horsetrack;


namespace GestionHT
{
    public partial class GestorCS : Form
    {
        public GestorCS()
        {
            InitializeComponent();
        }

        ar.com.horsetrack.Equipo objEquipo = new ar.com.horsetrack.Equipo();
        ar.com.horsetrack.Cliente objCliente = new ar.com.horsetrack.Cliente();
        ar.com.horsetrack.Caballo objCaballo = new ar.com.horsetrack.Caballo();
        

        private void button1_Click(object sender, EventArgs e)
        {

            ar.com.horsetrack.HorsetrackWebService objHTWebService = new ar.com.horsetrack.HorsetrackWebService();

            try
            {
                if ((tb_Usuario.Text != "") && (tb_Nombre.Text != "") && (tb_Apellido.Text != "") && (tb_Password.Text != "")
                    && (tb_mail.Text != "") && (tb_LatitudCent.Text != "") && (tb_LongitudCent.Text != "") && (tb_TelefonoPrimario.Text != "")
                    && (Sim.Text != "") && (tel.Text != "") && (Repar.Text != "") && (tb_IMEI.Text != ""))
                {

                    //objCliente.intIdUsuario = Convert.ToInt32(tb_idCliente.Text); //No le DataBindings importancia
                    objCliente.strUsuario = tb_Usuario.Text;
                    objCliente.strNombre = tb_Nombre.Text;
                    objCliente.strApelido = tb_Apellido.Text;
                    objCliente.strPassword = tb_Password.Text;
                    objCliente.strMail = tb_mail.Text;
                    objCliente.strLatitudCent = tb_LatitudCent.Text;
                    objCliente.strLongitudCent = tb_LongitudCent.Text;
                    objCliente.strPrimaryPhone = tb_TelefonoPrimario.Text;
                    objCliente.ActivaPorPrimeraVez=true;

                    try
                    {
                        objCliente.intIdUsuario = objHTWebService.AgregarCeloso(objCliente);     //
                      //MessageBox.Show("ID EQUIPO: " + objEquipo.inIDEquipo.ToString(), "INFO");
                    }
                    catch (Exception exc)
                    {
                        
                        MessageBox.Show("No se pudo agregar Cliente. EXCEPTION!: " + exc, "ERROR");
                        throw exc;
                    }

                    ///Llenado de objeto Equipo

                    objEquipo.strSimCodArea = tb_SIMCodArea.Text;
                    objEquipo.strTelefono = tb_Tel.Text;
                    //objEquipo.inCantidadDeReparaciones = Convert.ToInt16(Repar.Text);
                    objEquipo.inCantidadDeReparaciones = 0;
                    objEquipo.dtFechaInstalacion = System.DateTime.Now;
                    //objEquipo.enumOperador=Convert.ToInt32(tb_idOperador);
                    objEquipo.enumOperador = ar.com.horsetrack.Operador.Personal;
                    objEquipo.strCodeID = tb_CodeID.Text;
                    objEquipo.strCodeStatus = tb_CodeStatus.Text;
                    objEquipo.strUnitNumber = tb_UnitNumber.Text;
                    objEquipo.strUnitVersion = tb_UnitVersion.Text;
                    objEquipo.strNivelDeBateria = tb_Bateria.Text;
                    objEquipo.strOtraFuncionalidad = tb_OtraFun.Text;
                    objEquipo.strIMEI = tb_IMEI.Text;



                    try
                    {
                        objEquipo.inIDEquipo=objHTWebService.AgregarCelularCelado(objEquipo);     //
                    }
                    catch (Exception exc)
                    {
                        MessageBox.Show("No se pudo agregar equipo. EXCEPTION!: " + exc, "ERROR");
                        throw exc;
                            
                    }

                    try
                    {
                        objCaballo.objCliente = new ar.com.horsetrack.Cliente();

                        objCaballo.objEquipoCaballo = new ar.com.horsetrack.Equipo();

                        objCaballo.objCliente.intIdUsuario = objCliente.intIdUsuario;
                        objCaballo.objEquipoCaballo.inIDEquipo=objEquipo.inIDEquipo;

                        //objCaballo.strNombre=tb_NombreCelado.text;
                        objCaballo.strNombre="Celado";
                        objCaballo.Habilitado=true;
                        
                        //MessageBox.Show("LatitudC: " + tb_LatitudCent.Text, "INFO");
                        //MessageBox.Show("LongitudC: " + tb_LongitudCent.Text, "INFO");
                        
                        objCaballo.objPosicion = new ar.com.horsetrack.Coordenada();
                        
                        objCaballo.objPosicion.strLatitud=tb_LatitudCent.Text;
                        objCaballo.objPosicion.strLongitud=tb_LongitudCent.Text;
                        //MessageBox.Show("STRLAT: " + objCaballo.objPosicion.strLatitud + "LON: " + objCaballo.objPosicion.strLongitud, "INFO");

                        objCaballo.dtUltimaActualizacion=System.DateTime.Now;
                        objCaballo.enumRazaCaballo = ar.com.horsetrack.RazaCaballo.Desconocida;
                        objCaballo.enumCategoriaCaballo = ar.com.horsetrack.CategoriaCaballo.Desconocida;
                        //objCaballo.PathFotoCaballo = tb_PathFoto.text;

                        objHTWebService.AgregarCelado(objCaballo);
                    }
                    catch (Exception exc)
                    {
                        MessageBox.Show("No se pudo agregar Celado. EXCEPTION!: " + exc, "ERROR");
                        throw exc;

                    }

                    MessageBox.Show("CLIENTE - EQUIPO Agregado correctamente", "INFO");

                    voLimpiarTextbox();
                }
                else
                {
                    MessageBox.Show("DEBE COMPLETAR TODOS LOS CAMPOS", "ERROR");
                }
            }catch (Exception ex)
            {
                MessageBox.Show("NO SE PUDDO AGREGAR CLIENTE-EQUIPO. EXCEPTION: " + ex, "ERROR");
            }
        }
        void voLimpiarTextbox()
        {
            tb_idCliente.Clear();
            tb_Usuario.Clear();
            tb_Nombre.Clear();
            tb_Apellido.Clear();
            tb_Password.Clear();
            tb_mail.Clear();
            tb_LatitudCent.Clear();
            tb_LongitudCent.Clear();
            tb_TelefonoPrimario.Clear();            

            tb_SIMCodArea.Clear();
            tb_Tel.Clear();
            tb_idOperador.Clear();            
            tb_CodeID.Clear();
            tb_CodeStatus.Clear();
            tb_UnitNumber.Clear();
            tb_UnitVersion.Clear();
            tb_Bateria.Clear();
            tb_OtraFun.Clear();
            tb_IMEI.Clear();

        }

        private void buttonActualizarLista_Click(object sender, EventArgs e)
        {
            HorsetrackWebService ws = new HorsetrackWebService();
            dataGridView1.DataSource = ws.ObtenerListaClientes();
           
        }

        private void buttonActualizarTransaccion_Click(object sender, EventArgs e)
        {
            HorsetrackWebService ws = new HorsetrackWebService();
            dataGridViewTransacciones.DataSource = ws.ObtenerListaTransaccion();
           
        }
        private void ActualizarDatosLastTr_Click(object sender, EventArgs e)
        {
            HorsetrackWebService ws = new HorsetrackWebService();
            string[] strArrLastUpdate=ws.UltimasActualizaciones();

                if(dataGridViewLastTr!=null)
                dataGridViewLastTr.Rows.Clear();
                
                dataGridViewLastTr.ColumnCount = 2;
               // dataGridViewLastTr.RowCount = 10;
                dataGridViewLastTr.ColumnHeadersVisible = true;

                dataGridViewLastTr.Columns[0].Name = "Cliente";
                dataGridViewLastTr.Columns[1].Name = "Fecha";
            
                dataGridViewLastTr.Columns[0].Width = 160;
                dataGridViewLastTr.Columns[1].Width = 160;

                int x=0;
                foreach(string strLastUpdate in strArrLastUpdate)
                {
                    if (x < 20)
                    {
                        string[] strSeparData= strLastUpdate.Split('-');
                        string[] strDataCliente= strSeparData[0].Split(':');

                        int inLastInd = strSeparData[1].LastIndexOf("Fecha:");
                        inLastInd = "Fecha:".Count() + inLastInd;
                        strSeparData[1] = strSeparData[1].Substring(inLastInd, (strSeparData[1].Count() - inLastInd));

                        dataGridViewLastTr.Rows.Add(strDataCliente[1], strSeparData[1]);
                    }
                    else
                    {
                        break;
                    }
                    x++;
                    
                }
        }


        private void DeleteUser_Click(object sender, EventArgs e)
        {
            HorsetrackWebService ws = new HorsetrackWebService();
            Int32 selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected);

               if ((selectedCellCount > 0) &&(selectedCellCount<2))
               {
                   if (dataGridView1.AreAllCellsSelected(true))
                   {
                       MessageBox.Show("Solo seleccione una celda", "All cells are selected");
                   }
                   else if (dataGridView1.SelectedCells.Count > 1)
                   {
                       MessageBox.Show("Solo seleccione una celda", "ATENCION");
                   }                
                   else
                   {                    
                       int columnIndex = dataGridView1.CurrentCell.ColumnIndex;
                       string columnName = dataGridView1.Columns[columnIndex].Name;

                       if (columnName != "intIdUsuario")
                       {
                           MessageBox.Show("No esta en la columna correcta", "ATENCION");    
                       }
                       else
                       {                           
                           string valorCelda = dataGridView1.CurrentCell.Value.ToString();
                           
                           MessageBox.Show("Se deshabilito el usuario Nº: " + valorCelda ,"ATENCION");
                           ws.DeshabilitarCelado(Convert.ToInt32(valorCelda));

                       }

                   }
               }
               else
               {

                   MessageBox.Show("No hay celdas seleccionadas o hay mas de una seleccionada", "ATENCION");
               }
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            UserSel.Text= dataGridView1.CurrentCell.Value.ToString();
            
        }

        private void HabilitarUser_Click(object sender, EventArgs e)
        {
            HorsetrackWebService ws = new HorsetrackWebService();
            Int32 selectedCellCount = dataGridView1.GetCellCount(DataGridViewElementStates.Selected);

            if ((selectedCellCount > 0) && (selectedCellCount < 2))
            {
                if (dataGridView1.AreAllCellsSelected(true))
                {
                    MessageBox.Show("Solo seleccione una celda", "All cells are selected");
                }
                else if (dataGridView1.SelectedCells.Count > 1)
                {
                    MessageBox.Show("Solo seleccione una celda", "ATENCION");
                }
                else
                {
                    int columnIndex = dataGridView1.CurrentCell.ColumnIndex;
                    string columnName = dataGridView1.Columns[columnIndex].Name;

                    if (columnName != "intIdUsuario")
                    {
                        MessageBox.Show("No esta en la columna correcta", "ATENCION");
                    }
                    else
                    {
                        string valorCelda = dataGridView1.CurrentCell.Value.ToString();

                        MessageBox.Show("Se deshabilito el usuario Nº: " + valorCelda, "ATENCION");
                        ws.HabilitarCelado(Convert.ToInt32(valorCelda));

                    }

                }
            }
            else
            {

                MessageBox.Show("No hay celdas seleccionadas o hay mas de una seleccionada", "ATENCION");
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            ar.com.controlyseguimiento.www.ControlYSeguimiento objWSCYS = new ar.com.controlyseguimiento.www.ControlYSeguimiento();

            try
            {
                if (objWSCYS.CreateUserWithImei(Textbox_Imei_NP.Text, Textbox_Nombre_NP.Text, Textbox_Email_NP.Text, Textbox_Pass_NP.Text) == true)
                {
                    MessageBox.Show("Usuario creado correctamente", "ATENCION");
                }
                else
                {

                    MessageBox.Show("ERROR - Usuario no pudo ser creado", "ATENCION");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "ATENCION - ERROR");
            }
            finally
            { 
            
                Textbox_Imei_NP.Clear();

                Textbox_Nombre_NP.Clear();
                Textbox_Email_NP.Clear();
                Textbox_Pass_NP.Clear();

            }

        }







    }
}
